home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-06-28 | 841 b | 50 lines | [TEXT/CWIE] |
- // BroadcastLink.h
-
- #ifndef BroadcastLink_h
- #define BroadcastLink_h
-
- #ifndef ListLink_h
- #include "ListLink.h"
- #endif
- #ifndef Broadcaster_h
- #include "Broadcaster.h"
- #endif
- #ifndef Enableable_h
- #include "Enableable.h"
- #endif
-
- template < class Protocol >
- class BroadcastLink: public Enableable
- {
- typedef Broadcaster< Protocol > Source;
-
- private:
- Source& broadcaster;
- ListLink< Protocol > link;
-
- protected:
- virtual void BeEnabled()
- {
- broadcaster.Add( link, afterEnd );
- }
-
- virtual void BeDisabled()
- {
- broadcaster.Remove( link );
- }
-
- public:
- BroadcastLink( const Source& source,
- Protocol& target,
- bool startEnabled = true )
- : Enableable( startEnabled ),
- broadcaster( const_cast<Source&>( source ) ),
- link( &target )
- {
- if ( startEnabled )
- BeEnabled();
- }
- };
-
- #endif
-